package co.yixiang.yshop.module.member.controller.admin.user.vo;

import co.yixiang.yshop.module.member.controller.admin.userbill.vo.UserBillRespVO;
import co.yixiang.yshop.module.member.dal.dataobject.usertagref.UserTagRefDO;
import co.yixiang.yshop.module.order.api.productorder.dto.StoreOrderDTO;
import co.yixiang.yshop.module.product.api.coupon.UserCouponDTO;
import co.yixiang.yshop.module.product.api.productrelation.AppStoreProductRelationQueryDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 用户 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UserRespVO extends UserBaseVO {

    @Schema(description = "用户id", required = true, example = "16370")
    private Long id;

    @Schema(description = "添加时间")
    private LocalDateTime createTime;

    @Schema(description = "标签列表")
    private List<UserTagRefDO> tagList;

    @Schema(description = "消费金额")
    private BigDecimal consumeAmount;

    @Schema(description = "订单列表")
    private List<StoreOrderDTO> orderList;

    @Schema(description = "积分明细")
    private List<UserBillRespVO> integralBillList;

    @Schema(description = "持有优惠券列表")
    private List<UserCouponDTO> userCouponDTOS;

    @Schema(description = "余额变动")
    private List<UserBillRespVO> billList;

    @Schema(description = "足迹")
    private List<AppStoreProductRelationQueryDTO> relationList;

    /**
     * 用户类型
     */
    @Schema(description = "用户类型")
    private String userType;

    /**
     * 用户备注
     */
    @Schema(description = "用户备注")
    private String mark;

    /**
     * 性别
     */
    @Schema(description = "性别")
    private Integer sex;

}
